To fully tap potential of mobile networks and meet various increasing user demands, mobile operators deploy value-added services in a manner in which a universal gateway (UGW) connects various value-added service (VAS) servers in series. The VAS servers include a video optimizer, a service stream compressor, a data buffer, a deep packet inspector, a Hypertext Transfer Protocol (HTTP) header enhancer, and the like; and are configured to provide various value-added services for a user.
In the prior art, a process in which a user data packet obtains a value-added service provided by a VAS server is as follows: a software defined network (SDN) controller generates a flow table according to a 5-tuple of a user data packet and service chain information of the user data packet that are sent by a service-based router (SBR), and sends the flow table to an SDN switch, where the flow table includes more than one flow table entry, a flow table entry further includes a match entry and an execution entry, the match entry is the 5-tuple of the user data packet, and the execution entry is to access a specific VAS server; after receiving the user data packet, the SDN switch obtains the 5-tuple of the user data packet and matches the 5-tuple with the match entry of the previously received flow table, where if the match entry of the flow table is the same as the 5-tuple of the user data packet, the flow table is a flow table of the user data packet, and the SDN switch sends the user data packet to a specific VAS server to perform access according to the execution entry of the flow table; and after the user data packet is returned to the SDN switch after being processed by the VAS server, the SDN switch still matches the 5-tuple of the received user data packet with the match entry of the flow table, and sends the user data packet to a next VAS server according to a matched flow table.
However, if the VAS server providing a value-added service modifies the 5-tuple of the user data packet when processing the user data packet, for example, a VAS server providing network address translation or an HTTP proxy service modifies a 5-tuple of a user data packet, after the user data packet is processed by the VAS server, the 5-tuple of the user data packet is already modified; after the user data packet is returned to the SDN switch, because the flow table in the SDN switch is the flow table generated by the SDN controller according to 5-tuple information of the user data packet and service chain information of the user data packet that are sent by the SBR, the SDN switch cannot perform match according to a 5-tuple of the returned user data packet and the match entry in the previously received flow table, cannot determine a flow table of the user data packet, and cannot send the user data packet to a next VAS server. That is, in the prior art, in a case in which a VAS server modifying a 5-tuple of a user data packet exists, the SDN switch cannot determine a flow table, and therefore cannot send the user data packet to a subsequent related VAS server or another destination according to the flow table, that is, a value-added VAS service cannot be implemented in a case in which a VAS server modifies a 5-tuple of a user data packet.